package cn.ruc.dbiir.warn.adapter;

import java.sql.Connection;
import java.util.Random;

import javax.swing.text.View;

import cn.ruc.dbiir.warn.entity.WarnWater;
import cn.ruc.dbiir.warn.utils.Config;
import cn.ruc.dbiir.warn.utils.DBUtil;

/**
 * 不同数据源的适配器
* author：mark   
* createTime：Dec 8, 2019 11:56:07 PM   
* @version
 */
public class DataSourceAdapter {

	/**
	 * 模拟kafka实时数据生成，消息队列模式
	 * author：mark   
	 * createTime：Dec 8, 2019 11:55:33 PM
	 */
	public static void readFromStreams() {
		Random random = new Random();
		int node_disk_rate = random.nextInt(100);
		int node_mem_rate = random.nextInt(100);
		int node_cpu_rate = random.nextInt(50);
		int warn_code = 0;

		if (node_cpu_rate>50&&node_disk_rate<75&&node_mem_rate<75) {
			warn_code = 300;
		}
		else if(node_cpu_rate<50&&node_disk_rate>75&&node_mem_rate<75){
			warn_code = 100;
		}
		else if(node_cpu_rate<50&&node_disk_rate>75&&node_mem_rate<75) {
			warn_code = 200;
		}
		WarnWater warnWater = new WarnWater(1, node_disk_rate, node_mem_rate, node_cpu_rate, warn_code);
		DBUtil.insert(warnWater);

		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 从外部获取上报的预警信息
	 * author：mark   
	 * createTime：Dec 8, 2019 11:55:13 PM
	 * @param msg
	 */
	//http://localhost:8080/warn/highEchart/getInfo?warninfo=1,75,87,90,400
	public static void readFromClient(String msg) {
		Connection conn = DBUtil.getConn();
		String warns[] = msg.split(",");
		int node_id = Integer.parseInt(warns[0]);
		int node_disk_rate = Integer.parseInt(warns[1]);
		int node_mem_rate = Integer.parseInt(warns[2]);
		int node_cpu_rate = Integer.parseInt(warns[3]);
		int warn_code = Integer.parseInt(warns[4]);

		if (node_cpu_rate>75&&node_disk_rate<75&&node_mem_rate<75) {
			warn_code = 300;
		}
		else if(node_cpu_rate<75&&node_disk_rate>75&&node_mem_rate<75){
			warn_code = 100;
		}
		else if(node_cpu_rate<75&&node_disk_rate>75&&node_mem_rate<75) {
			warn_code = 200;
		}
		WarnWater warnWater = new WarnWater(node_id, node_disk_rate, node_mem_rate, node_cpu_rate, warn_code);
		DBUtil.insert(warnWater);

	}
	
	
	/**
	 * 
	 * author：mark   
	 * createTime：Dec 8, 2019 11:56:38 PM
	 * @param msg
	 */
	public static void readFromDatabase(String msg) {
//		Connection conn = DBUtil.getConn();
		//read data from specified database
//		int node_id = Integer.parseInt(warns[0]);
//		int node_disk_rate = Integer.parseInt(warns[1]);
//		int node_mem_rate = Integer.parseInt(warns[2]);
//		int node_cpu_rate = Integer.parseInt(warns[3]);
//		int warn_code = Integer.parseInt(warns[4]);

//		if (node_cpu_rate>75&&node_disk_rate<75&&node_mem_rate<75) {
//			warn_code = 300;
//		}
//		else if(node_cpu_rate<75&&node_disk_rate>75&&node_mem_rate<75){
//			warn_code = 100;
//		}
//		else if(node_cpu_rate<75&&node_disk_rate>75&&node_mem_rate<75) {
//			warn_code = 200;
//		}
//		WarnWater warnWater = new WarnWater(node_id, node_disk_rate, node_mem_rate, node_cpu_rate, warn_code);
//		DBUtil.insert(warnWater);

	}
	


}
